package br.com.sgh.beans;

import br.com.sgh.dao.EmprestimoDAO;
import br.com.sgh.entidade.Emprestimo;
import br.com.sgh.util.FacesContextUtil;
import br.com.sgh.util.RelatorioUtil;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.model.StreamedContent;

@ManagedBean
@ViewScoped
public class DevolucaoPendenteBean implements Serializable {

    private StreamedContent arquivoRetorno;
    private int tipoRelatorio;
    private Emprestimo emprestimo;
    private List<Emprestimo> emprestimos;

    private EmprestimoDAO emprestimoDao() {
        EmprestimoDAO<Emprestimo> dao = new EmprestimoDAO<Emprestimo>(Emprestimo.class, FacesContextUtil.getRequestSession());
        return dao;
    }

    public StreamedContent getArquivoRetorno() {
        tipoRelatorio = 1;
        System.out.println("tipoRelatorio " + tipoRelatorio);
        String nomeRelatorioJasper = "DevolucoesPendente";
        String nomeRelatorioSaida = "DevolucoesPendente";

        RelatorioUtil relatorioUtil = new RelatorioUtil();

        HashMap parametros = new HashMap();
        try {
            parametros.put("CAM_IMG", System.getProperty("user.dir")+"\\img\\logo.gif");
            this.arquivoRetorno = relatorioUtil.geraRelatorio(parametros, nomeRelatorioJasper, nomeRelatorioSaida, tipoRelatorio);
        } catch (Exception e) {
        }

        return arquivoRetorno;
    }

    public Emprestimo getEmprestimo() {
        return emprestimo;
    }

    public void setEmprestimo(Emprestimo emprestimo) {
        this.emprestimo = emprestimo;
    }

    public List<Emprestimo> getEmprestimos() {
        if (emprestimos == null) {
            emprestimos = emprestimoDao().listarImprestimoPendentes();
        }
        return emprestimos;
    }

    public void setEmpresimos(List<Emprestimo> empresimos) {
        this.emprestimos = empresimos;
    }

    public int getTipoRelatorio() {
        return tipoRelatorio;
    }

    public void setTipoRelatorio(int tipoRelatorio) {
        this.tipoRelatorio = tipoRelatorio;
    }

}
